Systems and methods for tagging content of shared cloud executed mini-games and tag sharing controls

ABSTRACT

Methods for tagging content in a video game title during game play executed on a game cloud system, and social sharing methods. One method includes receiving a pause indication during the game play and suspending the game play to hold the video game title in a current frame image, storing the game state, and receiving the tag data that is associated to a location in the current frame image and to a user identifier for the current frame image. The method further includes generating a video recording of the game play having the tag data and generating a mini-game from a portion of the video game title. The mini-game includes a playable portion to enable view of a portion of the video recording for the mini-game and an executable portion to enable the play of game code for the mini-game that is a portion of the video game title.

CLAIM OF PRIORITY

This application claims the benefit of and priority to U.S. patentapplication Ser. No. 13/779,730, filed on Feb. 27, 2013; which claimsthe benefit of and priority to U.S. Provisional Patent Application No.61/746,081, filed on Dec. 26, 2012, all of which are hereby incorporatedby reference in their entireties.

BACKGROUND 1. Field of the Invention

The present invention relates to systems and methods for tagging contentin a game, particularly a game shared in a game cloud executed system.

2. Description of the Related Art

Cloud systems, using computing resources (hardware and software),deliver services over a network (typically the Internet). The services,in the context of gaming, enable streaming of content to remote clients,wherein most processing is done on servers, which may be distributed.Input provided at the remote clients will in turn drive execution of thegame, without the need for dedicated gaming hardware at the client'slocation. Cloud gaming, therefore, has been increasing in popularitybecause users find it easier to access more titles without complexhardware restrictions and game suppliers find it easier manage game codefrom centralized locations.

It is in this context that embodiments of the invention arise.

SUMMARY

Embodiments of the present invention relate to systems and methods fortagging content of shared cloud executed mini-games and tag sharingcontrols. Several inventive embodiments of the present invention aredescribed below.

In one embodiment, a method for tagging content in a video game titleduring game play executed on a game cloud system is disclosed. Themethod includes executing the game play of the video game title whilereceiving user interactive input, and receiving a pause indication fromthe user interactive input. In response to the pause indication, thegame play is suspended and the game state is stored. The suspending actsto hold the video game title in a current frame image. The methodfurther includes receiving tag data for the current frame image. The tagdata is associated to a location in the current frame image and a useridentifier (UID). Then, the game play may be resumed. Additional tagdata may be received by repeating the above mentioned operations. Thedisclosed method also includes generating a video recording of the gameplay having the tag data and generating a mini-game from a portion ofthe video game title by identifying start and end positions in the videorecording. The mini-game includes a playable portion to enable view of aportion of the video recording for the mini-game, and an executableportion to enable play of game code for the mini-game that is a portionof the video game title.

In another embodiment, a system for enabling generation of mini-gamesexecuted on a cloud computing system is disclosed. The cloud computingsystem includes a mini-game processor and a tag processor. The mini-gameprocessor is configured to generate a mini-game based on a portion of avideo recording of game play for a video game title executed for a gameplayer. The tag processor is configured to receive the tag content forthe mini-game. The tag content is associated with the video frames ofthe video recording of the mini-game. The mini-game is sharable withother users of a social group that has access to view the video framesof the recording for the mini-game. The tag processor may handle theaddition of the tag content from the users having access through thesocial group and associate the user identification to the tag contentadded to the mini-game.

Other aspects of the invention will become apparent from the followingdetailed description, taken in conjunction with the accompanyingdrawings, illustrating by way of example the principles of theinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention may best be understood by reference to the followingdescription taken in conjunction with the accompanying drawings inwhich:

FIG. 1A illustrates a system diagram for enabling access and playing ofvideo games stored in a game cloud system, in accordance with anembodiment of the invention.

FIG. 1B illustrates a game cloud network, in accordance with oneembodiment of the present invention.

FIG. 1C illustrates an exemplary user profile stored in a game cloudsystem, in accordance with one embodiment of the present invention.

FIG. 2A illustrates mini-games created based on a video recording, inaccordance with one embodiment of the present invention.

FIG. 2B illustrates components of a created mini-game, in accordancewith one embodiment of the present invention.

FIG. 2C illustrates video frames of a created mini-game integrated withtag content, in accordance with one embodiment of the present invention.

FIG. 2D illustrates a cloud store that saves the created mini-games(MGs) and associated mini-game play videos (MGPVs), in accordance withone embodiment of the present invention.

FIG. 2E illustrates a webpage displaying a shared mini-game andassociated mini-game play videos (MGPVs), in accordance with oneembodiment of the present invention.

FIG. 2F illustrates a mini-game having user generated content (UGC)inserted at various locations of the mini-game, such as the beginning,the end, and dispersed at various locations in the mini-game, inaccordance with one embodiment of the present invention.

FIG. 3A illustrates a game display, in accordance with one embodiment ofthe present invention.

FIG. 3B illustrates a tagging process for a shared mini-game in a cloud,in accordance with one embodiment of the present invention.

FIG. 3C illustrates a video frame that shows tag content, in accordancewith one embodiment of the present invention.

FIG. 3D illustrates a video frame that displays entered tag content intag symbols, in accordance with one embodiment of the present invention.

FIG. 4A illustrates a mini-game integrated with tag content, inaccordance with one embodiment of the present invention.

FIG. 4B shows a mini-game data table associated with a mini-game, inaccordance with one embodiment of the present invention.

FIG. 5 illustrates a histogram generated based on the tag content in amini-game, in accordance with one embodiment of the present invention.

FIGS. 6A and 6B illustrate the dynamic changes for the mini-gamerepresentative frames based on tag content of a shared mini-game in acloud, in accordance with one embodiment of the present invention.

FIG. 7 is a flow chart illustrating an exemplary method for taggingcontent in a video game title during a game play executed on a gamecloud system, in accordance with one embodiment of the presentinvention.

DETAILED DESCRIPTION

The following embodiments describe methods and systems for taggingcontent in a game that is executed by a cloud-based system, and enablingthe sharing of games or parts of games having the tags with others. Thesharing can include, for example, sharing game content with other usersthat may have access to the cloud-based system already or new users. Thesharing of content can also be facilitated by enabling communicationsbetween users of similar games or friends of users. The friends of userscan also be discovered by interfaces with third party social networks.

As discussed in this application, mini-game creation and tagging dataassociated with created mini-games is discussed. In one embodiment, amini-game may be created by a user that owns or has access to a fullversion of the game. When a user plays the full version of the game, avideo recording is created of the game play. From this video recording,the user can select a portion of the video recording (e.g., a startingpoint and an ending point). This portion of the video is saved andassociated to the user. In addition, this portion is used to identifygame code (e.g., binary code and/or source code), metadata, and statedata that was created or associated to the game play via the fullversion of the game, i.e., when the game was played to create the videorecording. This information is in turn used to identify the portions ofthe code of the full game code that will be required to create anexecutable mini-game, that will encompass at least the functionalityseen in the portion of the video that was selected from the videorecording. In other embodiments, the functionality provided by the codeof the mini-game may be limited in one or more ways, e.g., fewercontrols, actions, characters, or options, as compared to the fullversion of the game. Once the mini-game is created, other users can viewthe video portion that was selected for the mini-game and will also beable to play an executable mini-game that parallels the code thatcreated the video portion.

The mini-game can be shared in a social group, such as a website thatdisplays mini-games made by many, including rankings of the mini-games.Sharing can also occur over a social network, wherein users can posttheir mini-games and tag data can be received by the users that wish toview or play the mini-game from the social network. The mini-games, inone embodiment, will include a video portion and an executable portion.In one embodiment, the video portion is a video of the game play of theoriginal user that created the mini-game. In one embodiment, theexecutable portion is a mini-game created from the main game, for asection of the game that parallels the video portion. Once a user viewsthe video portion, the user may wish to try the executable portion ofthe mini-game. While viewing the video portion, the user (and otherusers that view) may add tag content to the video. The tag data can alsobe added to the executable portion of the mini-game. Further examplesand embodiments will now be described below with reference to theexemplary drawings.

It will be obvious, however, to one skilled in the art, that the presentinvention may be practiced without some or all of these specificdetails. In other instances, well known process operations have not beendescribed in detail in order not to unnecessarily obscure the presentinvention.

FIG. 1A illustrates a system diagram 100A for enabling access andplaying of video games stored in a game cloud system (GCS) 110, inaccordance with an embodiment of the invention. General speaking, gamecloud system (GCS) 110 may be a cloud computing system. System 100Aincludes a game cloud system (GCS) 110, one or more social mediaproviders 140, and a user device 130, all of which are connected viaInternet 120. Although one user device 130 is illustrated in systemdiagram 100A, it is to be understood that in practice, many more userdevices may be connected to Internet 120 to access the services providedby GCS 110 and social media providers 140.

In one embodiment, game cloud system 110 includes a game executionengine 170, a recording engine 171, a mini-game processor 172, a tagprocessor 173, a user processor 174, a title index engine 175, a gamesession manager 185, user access logic 180, a network interface 190, anda social connection manager 195. Game cloud system 110 may furtherinclude a plurality of gaming storage systems, such as a game statestore 160, a game code store 161, a recorded game store 162, a tag datastore 163, a game title store 164, and a game network user store 165. Inone embodiment, game cloud system 110 is a system that can provide gameapplications, services, gaming related digital content, andinterconnectivity among systems, applications, users, and socialnetworks. Game cloud system 110 may communicate with user device 130 andsocial media providers 140 via network interface 190 that will enablewired and wireless communication methods. In one embodiment, each socialmedia provider 140 includes at least one social graph 145 that showsuser social network connections.

In one embodiment, a social media provider can be the game cloud system110 itself, whereby user relationships are managed without the need forexternal social media providers 140. In still other embodiments, thesystem can operate as a hybrid system, wherein social relationships aremanaged using social graph data from third party social media providers(via API interface accesses or the like) and user relationships withother users, as defined by the game cloud system.

In one embodiment, a user, e.g., user U0, can access the servicesprovided by game cloud system 110 and social media providers 140 by wayof user device 130. User device 130 can include any type of devicehaving a processor and memory, wired or wireless, portable or notportable. User device 130, which is shown connected to Internet 120,includes a display 132 that can be a touch-screen, or a displaytypically provided by a flat-panel display, a cathode ray tube (CRT), orother device capable of rendering a display. Alternatively, the userdevice 130 can have its display 132 separate from the device, similar toa desktop computer or a laptop computer. In one embodiment, user device130 can be in the form of a smartphone, a tablet computer, or hybridsthat provide touch screen capability in a portable form factor. Oneexemplary device can include a portable phone device that runs anoperating system and is provided with access to various applications(apps) that may be obtained over Internet 120, and executed on the localportable device (e.g., smartphone, tablet, laptop, desktop, etc.).

In one embodiment, user device 130 can install an application thatenables execution or views of the games stored or shared by the gamecloud system 110. Further, user device 130 can be used to communicatewith one or more social media provider(s) 140 via Internet 120 such thatuser device 130 may be used to play or view games posted and shared inone or more social media providers 140. For example, user U0 may accessa game posted in one of social media providers 140 by selecting a linkon a page, stream, news-feed, or post of the social media provider, andthen playing or viewing the game from user device 130.

In one embodiment, the games posted and shared in social media providers140 are mini-games generated based on video recordings of game plays.Those mini-games may be stored in recorded game store 162 of game cloudsystem 110. A user U0 is therefore able to play or view games ormini-games stored in game cloud system 110. Because game play isprimarily executed in the game cloud system 110, the user device 130will be receiving a stream of game video frames 135 from game cloudsystem 110, while user input 136 to drive the game play is transmittedback to the game cloud system 110. The received game video frames 135(representing the video from streaming game play) are therefore shown indisplay 132 of user device 130.

In one embodiment, a user, e.g., user U0, may create a user account andregister the created user account with game cloud system 110. After theuser account is registered with game cloud system 110, game cloud system110 may provide a user ID to this registered user account and save theuser ID in a user profile associated with the registered user account.The user profile associated with a user account will be described inmore detail with reference to FIG. 1C. In one embodiment, the userprofile associated with a user account may be saved in a user databasein game network user store 165.

In one embodiment, user access logic 180 may be used to detect accessesmade by user U0 either through user device 130 or other suitabledevices, and to verify the user log-in information, e.g., the name andpassword for the user account of user U0. After user U0 logs into his orher user account, user access logic 180 may communicate the user logininformation with user processor 174 that in turn updates the user logininformation stored in the user profile. Further, user access logic 180may communicate the user login information with social connectionmanager 195, so that social connection manager 195 can pull the user'ssocial network information from one or more social media providers 140via network interface 190. The social network information of the usermay be received by social connection manager 195, which in turntransmits the received social network information of the user to gamenetwork user store 165 to be saved in the user profile of user U0.

The social network information of a user may include, withoutlimitation, the names of the user's social network friends, the socialnetwork activities of the user and his or her social network friends (eg, mini-game tag data entered by the user and his or her social networkfriends), etc. In one embodiment, the names of the user's social networkfriends may be obtained from one or more social graphs 145 maintained bysocial media providers 140.

After logging in, the user can access services provided by game cloudsystem 110 via game session manager 185. For example, game sessionmanager 185 may inform user processor 174 of the user login informationso that user processor 174 may record or update the user logininformation in the user profile (stored in game network user store 165)associated with this user. In one embodiment, user processor 174 maycommunicate with title index engine 175 to identify game titlesassociated with the user account. The game titles associated with theuser account may be previously purchased by the user, previously playedby the user and/or free game titles identified and made available by thegame providers. In this example, available game titles may therefore bestored in game title store 164.

In one embodiment, after a user chooses an available game title to play,a game session for the chosen game title may be initiated by the userthrough game session manager 185. Game session manager 185 firstaccesses game state store 160 to retrieve the saved game state of thelast session played by the user (for the selected game), if any, so thatthe user can restart game play from a previous game play stop point.Once the resume or start point is identified, the game session manager185 may inform game execution engine 170 to execute the game code of thechosen game title from game code store 161. After a game session isinitiated, game session manager 185 may pass the game video frames 135(i.e., streaming video data), via network interface 190 to a userdevice, e.g., user device 130.

During game play, game session manager 185 may communicate with gameexecution engine 170, recording engine 171, and tag processor 173 togenerate or save recording (e.g., video) of the game play or game playsession. In one embodiment, the video recording of the game play caninclude tag content entered or provided during game play, and other gamerelated metadata. The video recording of game play may be saved inrecorded game store 162. Any tag content may be saved in tag data stored163, and the metadata may be saved in game state store 160. More detailregarding the process of tagging content will be described below.

In one embodiment, a mini-game may be created using information from thevideo recording of the game play, e.g., via mini-game processor 172. Forexample, after a user plays a game and the video recording is created,the user can simply watch a replay of the video recording of his or herprior game play. When the user is watching a replay of the videorecording, the user may find one or more parts to be particularlyinteresting. For example, the user may have achieved a high score orcompleted an interesting task during the game play. The user, in oneembodiment, is provided with controls to select a portion of the videorecording, which will then be used by mini-game processor 172 toconstruct a mini-game based on the selected portion of the video. In oneembodiment, the mini-game will include the executable code necessary torender the functionality or part of the functionality that was used tocreate the content of the selected portion of the video recording.

Thus, a user wishing to play the mini-game will be provided with asubstantially similar game play experience as the user that originallyplayed the game that created the video recording. For instance, if theoriginal game play included a scene where the user is riding a bike overa jump, and the user selects that portion from the video recording ofhis game play, the new mini-game would include code to enable similar orsubstantially similar game play. That is, the mini-game would enable theuser or other users to play the mini-game, wherein game play wouldinclude riding a bike over a jump. In this case, the user playing themini-game may or may not achieve the same game score for the jump.

The portion of the video recording associated with the created mini-gamemay be saved in recorded game store 162 and remaining portion of thevideo recording may be erased after a defined time period by recordingengine 171. If no mini-games are created for a video recording of a gameplay, the video recording of the game play may be erased after a definedtime period by recording engine 171.

In one embodiment, the created mini-game may be posted by user U0 to awebpage in a social network, via social connection manager 195, toenable sharing with his or her social network friends. Alternatively,the created mini-game may be posted by user U0 to a webpage in a gamenetwork maintained by game cloud system 110, for sharing with his or hergame network friends. Sharing, however, should not be limited tofriends. Sharing can also be extended to other users that may havesimilar likes or game play similarities.

In one embodiment, the game code that defines a mini-game can be thesame code of the full game from which the mini-game was created. Duringthe creation of the mini-game by mini-game processor 172, game playmetadata, which can include game state, is used to identify what partsof the game code of the full game are needed to make an executablemini-game. When the parts of the code of the full game are allidentified, the code that defines the mini-game can, in one embodiment,be defined by pointers or references to the game code of the full game.By using points and/or references, the need to create new code packagesfor each produced mini-game is reduced. As a user creates mini-gamesfrom their game titles, the code or pointers for the created mini-gamescan be associated to the creating user in the user store 165. This way,each created mini-game can be defined by its original creator, andmetrics regarding play of the mini-games can be attributed to thecreating user. For instance, if a particular user creates mini-game thatare played and/or shared often with other users; the popularity of themini-game can be tracked and ranked against other mini-games and users.

Still continuing with FIG. 1A, in one embodiment, during a game play,user interactive input 136 entered by user U0 may be transmitted to gamesession manager 185 of game cloud system 110. User interactive input136, besides input used to drive game play, may include tag content(e.g., texts, images, video recording clips, etc.). The tag content caninclude game tag data entered by user U0 while playing an available fullgame title, as well as mini-game tag data entered by user U0 whileplaying a mini-game.

As noted above, the mini-game may be a mini-game that is created by userU0 based on a video recording of the game play, or a shared mini-gameposted by other users, e.g., social network friends of user U0. In oneexample, if user interactive input 136 is tag content, the tag contentmay be received by game session manager 185, which in turn informs tagprocessor 173 and user processor 174 that the tag content is received.Tag processor 173 is used to save the tag content to tag data store 163,and user processor 174 is used to associate the tag content with theuser who entered the tag content, and to save a tag pointer that pointsto where the tag content is stored in tag data store 163 and the userprofile associated with user U0.

In one embodiment, mini-game processor 172 may be used to analyze thetag content of a mini-game, and identify video frames with more tagcontent as a representative frame for the mini-game. For example, when amini-game is created, the mini-game may be shown as an icon or stillimage. The still image may be, for example, one of the video frames ofthe mini-game. The more interesting the frame is, the more likely it isthat the mini-game may be played by others. Thus, in this embodiment,the frame that is selected to be the still image may be automaticallyselected based on the tagging data associated with particular frames.

In another embodiment, mini-game processor 172 may rank the mini-gamescreated from various video recordings of game plays, based on the tagcontent of the mini-games. For instance, if certain mini-games have ahigher number of tag data, this may indicate that the content isinteresting and/or is being shared the most. As such, some mini-gamescan be displayed more prominently on a website, relative to othermini-games, based on the degree of tagging that such mini-gamesexperience.

FIG. 1B illustrates a game cloud network 100B, in accordance with oneembodiment of the present invention. For example purposes only, the gamecloud network 100B may include six game cloud systems (GCS1 to GCS 6),which are geographically distributed and interconnected. Also forpurposes of example, eleven users (U1 to U11) are shown in FIG. 1B withdifferent geographical distances to each of the six GCSs. To reducelatency, the GCSs are distributed and users that are more proximate tocertain GCSs will be paired to the more local GCS.

As shown in FIG. 1B, users U1 and U2 are geographically located closerGCS3, user U3 is located about in the middle of the distance betweenGCS2 and GCS5, user U4 is located in between GCS 5 and GCS 6 but iscloser to GCS 6, users U6 and U7 are located near GCS4, users U8 and U9are located near GCS1, and users U5, U10, and U11 are located near GCS6.Although six game cloud systems and eleven users are shown, it is to beunderstood that in practice, more or less game cloud systems may beincluded in game cloud network 100B, and more or less users may accessthe services provided by game cloud network 100B.

In one embodiment, each GCS in game cloud network 100B is located in adata center that houses computer systems and associated components tosupport multiple operating systems. As an example, the structure of eachGCS may be similar to GCS 110 as shown in FIG. 1A. Although, it shouldbe understood that a GCS may include fewer or more processing componentsor logic elements, depending on the processing desired. In oneembodiment, each GCS in game cloud network 100B may communicate withother GCSs so that the information for various user profiles stored inrespective game network user stores of a GCS can get updated andsynchronized. Through the communication among the GCSs, game cloudnetwork 100B can dynamically distribute the work load to provide loadbalancing and assign users based on the work load of each GCS anddistance factors.

In one embodiment, when a user is trying to log into his or her useraccount online via a user device, depending upon the geographicallocation of the user, the user may be routed to a GCS that is closest tohis or her user device. For example, because user U1 along with his orher user device is located near GCS3, user U1 utilizes the game servicesprovided GCS3 after his or her user device is connected to GCS3.Similarly, user U2 may utilize the game services provided by GCS3, userU7 and user U6 may utilize the game services provided by GCS4, user U8and user U9 may utilize the game services provided by GCS1, and user U5,user U10, and user U11 may utilize the game services provided by GCS6,based on geographical distance to respective CGSs.

In another embodiment, when a user is located approximately in themiddle of two GCSs, the user may access the game services provided byboth GCSs. For example, user U3 is located approximately in the middleof GCS2 and GCS5. When user U3 is trying to log into his account, theuser device of user U3 may be connected to either GCS2 or GCS5, or bothGCSs, depending upon the work load and latency of the GCSs. In stillanother embodiment, a user may be connected to a GCS that is not theclosest one to this user because the GCS that is closest to this user isexperiencing heavy work load. For example, user U4 may be initiallyconnected to GCS6 because user U4 is located closest to GCS6. Due toheavy work load of GCS6, user U4 may be disconnected from GCS6 and beconnected to GCS5. During the period of switching from GCS6 to GCS5,user U4 may be temporarily connected to both GCS6 and GCS5 for a while,and then get disconnected from GCS6 after GCS5 has replicated the gamestate of user U4 in GCS6. Thus, the switching from one GCS to anotherGCS is transparent to the user without affecting the user's experiencewith the game. In another example, user U4 may be directly routed toGCS5 because GCS5 has larger capacity than GCS6.

FIG. 1C illustrates an exemplary user profile 100C stored in a gamecloud system 110, in accordance with one embodiment of the presentinvention. In one embodiment, user profile 100C may be saved in a userdatabase stored in game network user store 165 of game cloud system 110.In this example, user profile 100C includes a “User Name” field, a “UserID” filed, a “User Password” field, a “User Login” field, a “User Level”field, a “User Awards” field, a “Friends” field, a “Game Titles” field,and a “User Tags” field.

In one embodiment, the “User Name” field, the “User ID” field, and the“User Password” field are used to record the name of the user, the IDassigned to the user when he or she created the user account in gamecloud system 110, and the password set up by the user. The “User Login”field is used to indicate whether this user is currently logged into hisor her user account. As discussed above, the user login information maybe updated by user processor 174. The “User Level” field is used toindicate the game play levels of the user. The “User Awards” field showsthe awards received by the user during previous game plays.

In one embodiment, the “Game Titles” field shows all available gametitles for the user. The available game titles may be those that theuser is able to freely play because either the user purchased the gameor the game is free to play. In still other embodiments, the Game Titlesfield can show or identify the games that the user is able to see, suchas, based on the rating of the games. If the player is a minor, onlyselected games would be made accessible for that player.

As discussed above, a user may create one or more mini-games based on avideo recording of a game title played by the user. If one or moremini-games are created for the game title, the created mini-games willbe shown under this game title. In this example, there are threeavailable game titles for the user (Game Title 1, Game Title 2, and GameTitle 3), and one mini-game (Mini-Game 1) is created from Game Title 2.In one embodiment, the user can start to play a game by selecting(clicking, selecting, touching, etc.) on the available game title shownin user profile 100C. In still other embodiments, mini-games can beshown on a separate webpage, where a user can select to play mini-gamescreated by the user or created by other users. The mini-games shown canbe organized based on game-types, genres, age appropriate, etc.Mini-games having larger numbers of plays or tags maybe ranked higher orplaced in a more prominent location on the webpage. From this webpage ofmini-games, users can access to play such mini-games or share themini-games with others within the game network or externally via socialnetworks.

In one embodiment, the “User Tags” field in user profile 100C lists tagcontent entered by users. As discussed above, the entered tag content isstored in tag data store 163. For each tag content listed in the “UserTags” field, there is an associated tag pointer that points to the tagcontent stored in the tag data store 163. The tag content stored underthe “User Tags” field may be (a) game tag data entered by the userduring a game play of the original full game title, (b) game tag dataentered by the user while viewing the video recording from the game playof the full game title, or (c) game tag data entered by any user viewingthe portion of the video recording used to make or define the mini-game,or (d) game tag data entered by any user while playing the mini-game thevideo portion (the portion being the portion that was selected from thevideo recording to define the mini-game).

In one embodiment, a mini-game may be created by a user that owns or hasaccess to a full version of the game that is used to create themini-game. When a user plays the full version of the game, a videorecording is created of the game play. From this video recording, theuser can select a portion of the video recording (e.g., a starting pointand an ending point). This portion of the video is saved and associatedto the user. In addition, this portion is used to identify metadata andstate data that was created when the full version of the game was playedto create the video recording. This information is in turn used toidentify the code parts of the full game code that will be required tocreate an executable mini-game, which will encompass at least thefunctionality seen in the portion of the video that was selected fromthe video recording. In one embodiment, once the mini-game is created,the mini-game may have two parts.

For example, a first part is the portion of the video selected by theuser, from the full video recording. This portion can be posted andshared, so that other users can see a video of the user's game play andthe results (which may have been interesting). Once a person views thevideo portion, the person can elect to play a mini-game for that portionof video.

Also for example, a second part is the executable mini-game. As in theexample above, if the portion of the video shows the user jumping anobstacle on a bike, the mini-game will provide code to allow anotherplayer to attempt the jump of the obstacle on the bike. The game scoresachieved by the original player using the full game can then be comparedto the score achieved by the other player. The other player may also geta good score, which may be interesting to share.

Thus, to provide further sharing, a third part may be the creation of asecondary video portion that is a recording of game play of themini-game by other users. Thus, as more players play the mini-game,there will be many secondary recordings of those game plays, which willalso be saved and associated with the original mini-game and to theplayers.

In this example, however, the creator of the mini-game is going to bethe owner of the full version of the game. If the person playing themini-game wishes to make a mini-game him or herself, that person canpurchase the full copy (or full locked access) and produce his or herown mini-games that can be shared in the same way.

In one embodiment, the “Friends” field in user profile 100C shows theuser's friends in both game network and social network. In this example,the user's game network friends are shown under the “Game Network”sub-field and the user's social network friends are shown under the“Social Network” sub-field. The user's friends who belong to both thegame network and the social network may be listed under the “Common”sub-field.

For a user profile stored in game network user store 165, the “UserName” field, the “User Login” field, the “User Level” field, and the“User Awards” field may be viewable to other users in the game network,while the other fields in the user profile may not be viewable to otherusers. In one embodiment, a user may select whether to make the“Friends” field in his or her user profile to be viewable by otherusers.

FIG. 2A illustrates mini-games created based on a video recording 200,in accordance with one embodiment of the present invention. In thisexample, after a user (or a game player) has played an available gametitle, either the complete game or part of the game, the game played maybe saved as video recording 200. In this example, video recording 200includes recorded video frames 210 for the game played, recorded tagcontent 220, and recorded metadata 230. Recorded tag content 220includes tag pointers that point to game tag data 225 and 225′(represented as solid circles) added during the game play (e.g., tagsadded when the game is paused or the like), the time when the game tagdata 225 and 225′ was entered and associated video frames for game tagdata 225 and 225′. For example, game tag data 225 are respectivelyentered at time t2, t3, and t4, and is associated with video famesnumber 760, 812, and 890 of recorded video frames 210. In oneembodiment, game tag data 225 and 225′ may be stored in tag data store163 of game cloud system 110, and be pointed by game tag data pointersstored in recorded tag content 220.

In one embodiment, when a game player wants to enter game tag dataduring the game play or execution, the game player can send a pauseindication to suspend the game play through a user interactive input,e.g., a tagging button displayed on a display of the user device used toplay this game. When the game play is suspended, the game state inresponse to the pause indication may be stored in game state store 160of game cloud system 110. The solid squares 235 and 235′ in recordedmetadata 230 indicate the corresponding saved metadata (including gamestate) when game tag data 225 and 225′ are entered, respectively. Whenvideo recording is viewed, the associated tag content may be shown alongwith the video frames in recorded video frames 210.

In one embodiment, the game player may create a mini-game (MG) based onvideo recording 200 by indicating a start position and an end positionof the mini-game, during a view of video recording 200. For example,based on video recording 210, the game player may choose video frame 688as the beginning of MG1 and video frame 974 as the ending of MG1 byclicking and unclicking a mini-game creation check box displayed on ascreen, respectively. The created MG1 is playable to view the videorecording of MG1 that is a portion of video recording 200, and isexecutable to play game code of MG1 that is a portion of the full gamecode of the original game title played by the game player. The videorecording of MG1, in one embodiment, has associated therewith, game tagdata 225 and metadata 237. When the video recording of MG1 is viewed,game tag data 225 may be shown along with the associated video framesfor MG1. In one embodiment, it can be an option to turn on or off theviewing of tags when viewing the recorded video of MG1.

In another embodiment, multiple mini-games can be created based on videorecording 200. As shown in FIG. 2A, MG1 is not overlapped with MG2 andMG3, and MG2 and MG3 are partially overlapped with each other. In oneembodiment, the created mini-games, e.g., MG1, MG2, and MG3, may besaved in recorded game store 162 by mini-game processor 172 of gamecloud system 110.

FIG. 2B illustrates components of a created mini-game, e.g., MG1, inaccordance with one embodiment of the present invention. MG1 includesMG1 game code 270 and MG1 overlay data 270′. MG1 game code 270 is aportion of the game code for the game played (i.e., full game), and MG1overlay data 270′ includes MG1 beginning data 280, MG1 ending data 290,associated metadata 237, and associated tag content 275. Although notshown, the portion of video that was selected to define the start andend of the MG1, can also be provided or associated with the MG1. Tagcontent 275 may include game tag data 225 entered by the game playerduring the game play, and mini-game tag data entered during a view forMG1, by either the game player or other users after the game playerposted MG1 for sharing in a network. The overlay data 270′ is integratedwith MG1 game code 270. MG1 beginning data 280 may include a pointerpointing to the beginning of MG1 game code 270, and MG1 ending data 290may include a pointer pointing to the ending MG1 game code 270. In oneembodiment, MG1 beginning data 280 may further includes MG1 creationdate, MG1 ownership, and other MG1 related information. MG1 may be savedin recorded game store 162 of game cloud system 110.

FIG. 2C illustrates video frames of a created mini-game integrated withtag content, in accordance with one embodiment of the present invention.In this example, the created mini-game includes a plurality of videoframes (VF_1 to VF_N) and the shaded video frames (VF_2 and VF_6)represent the video frames integrated with tag content, indicating thequantities and locations of the tag content in corresponding videoframes. As shown, video frame VF_2 is integrated with game tag data 250and video frame VF_6 is integrated with both game tag data 255 andmini-game tag data 240.

FIG. 2D illustrates a cloud store 295 that saves the created mini-games(MGs) and associated mini-game-play videos (MGPVs), in accordance withone embodiment of the present invention. A MGPV is a secondary videothat is a recording of game play by users that wish to play themini-game that was earlier created. As such, the more plays that themini-game gets, the more MGPVs will be created for that mini-game. Verypopular mini-games will have more MGPVs and it may be possible to rankthe MGPVs, such that the higher score MGPVs or most tagged MGPVs will beshown first or can be filtered into a particular order to search. Inthis example, three mini-games (MG1, MG2, and MG3) are stored in cloudstore 295. In one embodiment, cloud store 295 may be recorded game store162 of game cloud system 110, and the created mini-games are saved bymini-game processor 172.

The stored mini-games can be posted and shared by the respectivemini-game creators in either a game network or a social network. Asshown in FIG. 2D, a plurality of MGPVs (MGPV_1, MGPV_2, MGPV_N) can becreated based on the plays or executions of MG1, after one or more usersplay the shared MG1.

FIG. 2E illustrates a webpage 205 displaying a shared mini-game (MG 201)and associated mini game play videos (MGPVs) 202, in accordance with oneembodiment of the present invention. As shown, webpage 205 includes a MG201 posted and shared, e.g., by the mini-game creator, a play button 203for the shared MG 201. The play button 206 may enable replay of thevideo portion of the originally played game by the creator of themini-game. If after watching the mini-game video, the user wishes to tryplaying an executable version of the game that is created for mini-game201, the user may push the play button 203 to attempt to play the gamethat is substantially similar to the game play that is shown in thevideo portion, shown when pushing icon 206.

If mini-game gets a lot of plays, either due to popularity or bysharing, the mini-game may get a history of plays. This history of playswill be represented by the mini-game play videos (MGPVs) 202, which willhave corresponding play buttons 207. Users wishing to view the priorplays by others can browse through the prior plays, and then if the userwishes to attempt play themselves, the user can simply hit/select theplay button 203 to play the mini-game.

In one example, webpage 205 may be a webpage in the mini-game creator'ssocial network. The social network friends of the mini-game creator maysimply view the shared MG 201 in website 205 by clicking the MG playicon 206. As discussed above, during a view of mini-game 201, the usercan temporarily pause mini-game 201 to enter mini-game tag data, andthen resume the view of mini-game 201.

In one embodiment, the tag data can be assigned to a location in a videoframe. The location can be a coordinate location of the display. Thecoordinate location is saved, and provided to the tag processor. The taglocation being saved, enables later presentation of the tag data at thelocation identified by the entering user. The tag location can be set,for example, by allowing the user to place the tag data at a particulararea of the screen, associate the tag data to an object shown in thescreen, or link the tag data to some event shown in the screen. Once theuser sets the location, the system will identify screen coordinates andassociate the tag data to one or more frames.

For example, even though the tag data is set at one still video frameview, when the tag data is shown, it can be allowed to stay in aviewable state for a period of time, which can encompass multiple framesof video. For example, tag data can be shown, during playback, forseveral seconds. If the frame rate of the video is, for example, 60frames per second (other frame rates are possible, either slower orfaster), it should be understood that tag data can be displayed for aperiod of time that will involve the display of many frames of video. Itis also understood that frames will, in some embodiments, includecompression to reduce transmission latency.

In one embodiment, the game manufacturer of the original game titlebased on which MG 201 is created may identify the users who frequentlyplay the shared MG 201 or the users who got high play scores, and sendtarget emails or advertisements to those identified users. In thisexample, Bob has played the posted MG 201 three times with decentscores. Thus, the game manufacturer may send an email, text, post ormessage to Bob to advertise the original game title and offer purchasediscount. Alternatively, if MG 201 is a very popular shared mini-game inthe cloud, the game manufacture may study the video frames and theactions associated with MG 201 and create new games that include videoframes and actions similar to the ones in MG 201.

FIG. 2F illustrates a mini-game having user generated content (UGC)inserted at various locations of the mini-game, such as the beginning,the end, and dispersed at various locations in the mini-game, inaccordance with one embodiment of the present invention. In thisexample, mini-game 200F has been integrated with four UGC sections. TheUGC sections can be added at various locations of the mini-game, such asthe beginning, end and/or dispersed at particular locations within themini-game. In one embodiment, the UGC sections can be video clips,images, separate micro-games, stores, animations, sound files, etc. Inone embodiment, the UGC sections can be videos, such as an introductoryvideo clip 296, a user inserted/selected video clip 298, userinserted/selected video clip 299, and a finally video clip 297. The UGCsections may include greetings from the user who created mini-game 200Fand/or a brief introduction of mini-game 200F. In another example, videoclip 297, which is attached to the end of mini-game 200F, may containuser summaries for mini-game 200F or information on related mini-gamesby the same player or friends of a player. In yet another example, uservideo clips 298 and 299, which are inserted in the middle of mini-game200F, may contain user comments and game play know-how for the mini-gameplay scene immediately after or before each of user video clips 298 and299. Again, as noted above, the UGC sections can be in the form ofdigital content, which can include video clips, audio clips, stillimages, sounds, image transitions, user voice data, training audios, orcombinations thereof.

In still another embodiment, the mini-game play videos (MGPVs) 202(shown in FIG. 2E), can be provided with UGC sections, in the same wayas described for mini-games. For instance, the MGPVs can have anintroductory content, content injected and integrated within the MGPV,and content at the end with concluding data. The ability to add UGCsections to mini-games and mini-game play videos allows users tocustomize their created content. Customization encourages users to sharetheir created mini-games, such as in a social network or the like.

FIG. 3A illustrates a game display 300, in accordance with oneembodiment of the present invention. The game display 300 includes ascreen 310 that shows a video frame 340A and a control panel 320. Inthis example, control panel 320 includes six control check boxes:“Mini-game Creation” check box 321, “Mini-game Play” check box 322,“Mini-game View” check box 323, “Tagging” check box 324, “Show Tags”check box 325, and “Hide Tags” check box 326. Although six check boxesare shown in control panel 320 that is displayed vertically along theright edge of screen 310 for this embodiment, it is to be understoodthat in practice, more or less game control check boxes may appear in acontrol panel and the control panel may be shown in any position of agame display screen. Furthermore, the controls in control panel 320 maybe implemented in other forms, such as radio buttons, push buttons,drop-down menus, voice inputs, gesture detection, touch input, etc. Thecurrent location of mouse cursor 330 in video frame 340A is shown inscreen 310.

In this embodiment, the video frame 340A is a video frame of a videorecording of a game play. A user may create a mini-game during the viewof the video recording. For example, the user may identify the beginning(or start position) of the mini-game by checking “Mini-game Creation”check box 321 when the beginning video frame of the mini-game appears onscreen 310, and identify the ending (or end position) of the mini-gameby unchecking “Mini-game Creation” check box 321 when the ending videoframe of the mini-game appears on screen 310. The created mini-game maybe posted for sharing in a webpage of a network. “Mini-game Play” checkbox 322 is used to play the shared the mini-game, and “Mini-game View”check box 323 is used to view the shared mini-game.

In one embodiment, “Tagging” check box 324, “Show Tags” check box 325,and “Hide Tags” check box 326 are tag controls for entering tag contentfor both the game and the mini-game. Tag content includes game tag dataand mini-game tag data. For the original game title, game tag data maybe entered either during a play of the game title or during a view ofthe video recording of the game play. For the mini-game created based onthe video recording of the game play, mini-game tag data may be enteredduring a view of the mini-game.

FIG. 3B illustrates a tagging process for a shared mini-game in a cloud,in accordance with one embodiment of the present invention. During aview of the shared mini-game, a user may identify a video frame of themini-game and enter mini-game tag data in a desired location in theidentified video frame. The tagging process may be started or ended bychecking or unchecking “Tagging” check box 324 in control panel 320.When “Tagging” check box is checked, the video frame that is currentlyshown in screen 310, e.g., video frame 340B, may be suspended by a pauseindication. Then, the user may move mouse cursor 330 (or other inputform) from the original location (shown in dashed lines) to a desiredtagging location in video frame 340B. In one embodiment, the user maydouble click the mouse in the desire tagging location to open up atagging window 350 to enter mini-game tag data 351, e.g., the sentenceof “I got the high score of 1000 for this jump.” Although mini-game tagdata 351 in this embodiment is text, in other embodiments, mini-game tagdata may be images, video clips, etc. The entered mini-game tag data 351is associated with video frame 340B.

During a play of the game or a view of the video recording of the gameplay, game tag data can be entered similar to the mini-game tag dataentering method described above.

In this example, the user identifier (UID) of the user (“Bob Smith”) whoentered mini-game tag data 351 is shown in user identifier display 352underneath tagging window 350. The user who entered mini-game tag data351 may be the one who created the mini-game or other users who viewedthe shared mini-game in the cloud. In another embodiment, useridentifier display 352 may also show the time when the user enteredmini-game tag data 351 and indicate whether the tag content in taggingwindow 350 is mini-game tag data. In still yet another embodiment, theuser who entered the tag content may choose whether to display his orher identity.

FIG. 3C illustrates a video frame 340B that shows tag content during aview of a mini-game, in accordance with one embodiment of the presentinvention. When a user plays or views a game or mini-game, the user maychoose to show or hide the tag content associated with various videoframes of the game or mini-game. For example, the user may display thetag content or hide the tag content for the video frames by checking“Show Tags” check box 325 or “Hide Tags” check box 326 in control panel320. After the user checks “Show Tags” check box 325, a pop-up window360 appears, showing four tag display options: “Friends & Me,” “All,”“Local Proximity,” and “Tag Symbols.” The “Friends & Me” option willenable the display for all tag content entered by the current user andhis or her friends. The “All” option will enable the display for all tagcontent. The “Local Proximity” option will enable the display for thetag content entered by users who are within a pre-defined localproximity around the user device having screen 310. The “Tag Symbols”option will enable the display for all tag content in pre-definedsymbols. In this example, the “Friends & Me” option is chosen, thus, sixtagging windows (371_1, 371_2, 371_3, 372, and 373) with tag contententered by either the current user or his or her friends are shown invideo frame 340B. Tagging windows 371_1, 371_2, and 371_3 overlapsbecause the tag content associated with those three tagging windows areeither entered at the same or proximately the same location in videoframe 340B. Tagging window 372 shows the tag content without showinguser identity, while tagging windows 371_1, 371_2, 371_3, and 373 showboth the entered tag content and the user identifiers.

FIG. 3D illustrates a video frame 340B that displays entered tag contentin tag symbols, in accordance with one embodiment of the presentinvention. In FIG. 3D, instead of showing the actual tag content intagging windows (as shown in FIG. 3C), five tag symbols (381_1, 381_2,381_3, 382, and 383) are shown in video frame 340B in the form of starsymbols. It is to be understood that other visual symbols may also beused to represent the actual tags in a game video frame. In oneembodiment, the actual tag content associated with a tag symbol may bedisplayed in the form a pop-up window, if a mouse cursor is moved on thetop of the tag symbol,

FIG. 4A illustrates a mini-game 410 integrated with tag content, inaccordance with one embodiment of the present invention. In thisexample, mini-game 410 is created and posted by user U1 in a networkwebpage to be shared with his or her friends. The network webpage may bea game network webpage or a social network webpage, and user U1'sfriends may be his or her game network friends or social networkfriends, who may view and play the shared mini-game 410 and entermini-game tag data for mini-game 410, without actually owning the gametitle for the original game.

As shown, mini-game 410 includes a mini-game beginning data 420,mini-game ending data 430, and a plurality of mini-game tag data 440 andgame tag data 445. As discussed above, mini-game 410 may also includeother overlay data, such as game state data. Mini-game tag data 440 maybe entered by the mini-game creator U1, U1's social network friends (U2,U3, and U4), and U1's game network friends (U5, U6, and U7), during aview of mini-game 410. Game tag data 445 may be entered by the mini-gamecreator U1 during a play for the original game title or during a view ofthe video recording of the game play.

FIG. 4B shows a mini-game data table 400 associated with mini-game 410,in accordance with one embodiment of the present invention. In thisexample, mini-game data table 400 includes six columns: the “User”column, the “Title Owned” column, the “Game Network Friends” column, the“Social Network Friends” column, the “Tag Content” column, and the“Video Frame Number” column. The “User” column lists the mini-gamecreator U1 (noted with a start symbol) and all of his or her socialnetwork friends (U2, U3, and U4) and game network friends (U5, U6, andU7). The “Title Owned” column indicates which user owns the originalgame title (T1), based on which mini-game 410 is created. The “GameNetwork Friends” column and the “Social Network Friends” columnrespectively show which users are U1's game network friends and socialnetwork friends. The “Tag Content” column shows the tag content enteredby the users listed in the “User” column. In this example, users U1, U2,U5, U6, and U7 entered text comments, user U3 entered a video clip, anduser U4 did not enter any tag data. The “Video Frame Number” columnshows the respective video frame numbers associated with the tag contentshown in the “Tag Content” column.

In one embodiment, the tag content in the “Tag Content” column may beshown in different colors (not shown) to distinguish the game tag dataand mini-game tag data. Alternatively, other methods may also be used todistinguish the game tag data and mini-game tag data in mini-game datatable 400.

FIG. 5 illustrates a histogram 500 generated based on the tag content ina mini-game 510, in accordance with one embodiment of the presentinvention. Mini-game 510, which is a shared mini-game in a game cloudsystem, includes mini-game beginning data 520, mini-game ending data530, tag content (represented by the triangle and solid dot symbols),and other metadata related to mini-game 510 (not shown). The tag contentincludes game tag data 540 (represented by the solid dot circles) andmini-game tag data 545 (represented by the triangle symbols). Game tagdata 540 is entered by the creator of mini-game 510 while he or she isplaying the game for the original game title based on which mini-game510 is created, or during a view of the video recording of the gameplay. Mini-game tag data 545 is entered while mini-game 510 is viewed byeither the mini-game creator or other users who have access to theshared mini-game 510. In one embodiment, the other users are the socialnetwork friends of the mini-game creator. Alternatively, the other usersare the game network friends of the mini-game creator.

Histogram 500 is plotted based on the quantities of tag content and theassociated video frames of mini-game 510. Histogram 500 can help gamedevelopers to identify which section of mini-game 510 has the most tagcontent, and/or identify which video frame of mini-game 510 has the mosttag content. Thus, based on user activity, e.g., tagging for amini-game, game developers can analyze the history of tagging and thetag content for a shared mini-game. For example, if all or majority oftag content in section 560 of mini-game 510 is positive, section 560 ofmini-game 510 is a popular section. Based on this information, gamedevelopers can make new games that contain theme or actions similar tothe ones in section 560 of mini-game 510. Further, game developers canalso identify a popular video frame if the video frame has the mostpositive content tag in a shared mini-game.

In one embodiment, mini-games stored in a game cloud system, e.g., gamecloud system 110, may be ranked, e.g., by mini-game processor 172, basedon the tag content in the mini-games. For example, the mini-game withthe more positive tag content can have the highest ranking among thosemini-games stored in game cloud system 110. In another embodiment, amini-game video frame with the most tag content can be identified, e.g.,by mini-game processor 172, as the representative frame for themini-game. In addition to just providing information that particularframes were tagged, additional data can be provided by the taggingentity, such as a rating (e.g., number of starts, positive points, rank,feedback, etc.).

FIGS. 6A and 6B illustrate the dynamic changes for the mini-gamerepresentative frames based on tag content of a shared mini-game in agame cloud system, in accordance with one embodiment of the presentinvention. As shown in FIG. 6A, the representative frame for mini-game610 at time t0 is video frame 620 that contains the most tag content attime t0. As time goes by, more tag content is entered for mini-game 610.At time t1, the representative frame for mini-game 610 is video frame630 that contains the most tag content. The image of the representativeframe for mini-game 610 may be displayed as the icon image.Alternatively, the image of the representative frame may be displayed asa mouse cursor is moved on top of the icon that represents mini-game610, or an input is detected (e.g., touch on a touch screen, gesture,voice, etc.).

FIG. 7 is a flow chart illustrating an exemplary method 700 for taggingcontent in a video game title during a game play executed on a gamecloud system, in accordance with one embodiment of the presentinvention. In one embodiment, the illustrated exemplary method 700 isdescribed in relation to operations performed by game cloud system 110as shown in FIG. 1A. Again, the system of FIG. 1A is only an example,and variations to the system components can exist so long as the desiredfunctionality is processed.

At operation 710, a game play is executed for a video game title by auser (or game player) and a user interactive input may be received fromthe user during the execution of the game play. In one embodiment, thegame code of the video game title is stored in game code store 161 ofgame cloud system 110 and the game is executed by game execution engine170 of game cloud system 110. The video frames 135 of the executed gameplay is transmitted by game execution engine 170 via game sessionmanager 185 and network interface 190 to user device 130 to bedisplayed. The user interactive input, e.g., input 136, may be receivedfrom user device 130 by game session manager 185. In one embodiment, theuser interactive input is a control signal indicating the beginning of atagging process. For example, the user may check a “Tagging” check boxon the display screen to initiate the tagging process.

At operation 720, a pause indication from the user interactive input isreceived. For example, after the user clicks or selects a tagging buttonon the display screen of user device 130, game session manger 185 maysend a pause indication to game execution engine 170 to suspend theexecution of the game play. In one embodiment, the pause indication issent by the user when he or she sees a particular video frame in whichhe or she would like to enter game tag data at a chosen location.

At operation 730, the game play is suspended and the game state of thegame play is stored, in response to the pause indication. The suspensionresults in a video frame that is current on display in the displayscreen of user device 130 to be on hold on the display screen.

At operation 740, tag data is received for the current video frame, thetag data is associated to a location in the current video frame and to auser identifier (UID) of the user. In one embodiment, the tag dataentered by the user is received by game session manager 185 from userdevice 130 (or any connected device, whether wired or wireless), andgame session manager 185 may inform tag processor 173 that in turn savesthe tag data in tag data store 163. Game session manager 185 may alsoinform user processor 174 so that the “User Tags” field in the userprofile associated with the user may get updated. In one embodiment, theuser may choose a location in the current video frame for tagging bymoving a mouse cursor to the desired location. After the mouse is doubleclicked (or selection is made by some input mechanism), a tagging windowmay pop up so that the user can enter game tag data into the taggingwindow. In one embodiment, game tag data may be text messages, images,video clips, etc.

At operation 750, the execution of the game play is resumed. In oneembodiment, the user may uncheck the “Tagging” check box on the displayscreen of the user device to resume the execution.

At operation 760, whether there is any additional game tag data thatneeds to be entered will be determined. In one embodiment, a user maycheck the “Tagging” check box in the display screen to re-initiate theinput for additional game tag data. If there is additional game tagdata, the operations 720, 730, 740, and 750 will be repeated. If thereis no additional tag data, a video recording of the game play will begenerated at operation 770, and the video recording of the game playincludes the tag data entered by the user.

At operation 780, a mini-game is generated or created from a portion ofthe video recording. The mini-game may be generated by identifying astart position and an end position in the video recording. For example,a user may create a mini-game while he or she is viewing the videorecording of the game play on a screen. When a desired beginning videoframe appears on the screen, the user may check a mini-game creationcheck box in a control panel to identify this video frame as the startposition of the mini-game and uncheck the mini-game creation check boxto identify a video frame as the end position of the mini-game. As such,the video recording of the mini-game, which is a portion of the videorecording of the game play, includes the game tag data associated withthe video frames in the mini-game video recording.

The mini-game includes a playable portion to enable view of a portion ofthe video recording for the mini-game and an executable portion toenable play of game code for the mini-game that is a portion of thevideo game title. When the shared mini-game is viewed in the cloud,mini-game tag data can be entered. Similar the method described abovefor tagging content in the video game title during the game play of theoriginal full game version, mini-game tag data entry may be started bypausing the view of the mini-game on a display and enabling a locationon the display for tagging. After receiving the mini-game tag data atthe enabled location, the mini-game tag data is integrated with orassociated to the game code of the mini-game. Then, the view of themini-game can be resumed. The above described mini-game tag data entrymethod can be repeated for additional mini-game tag data. Finally, amini-game video frame with most tag content is identified to be therepresentative frame for the mini-game. The tag content includes gametag data and mini-game tag data associated with the identified mini-gamevideo frame.

In one embodiment, the cloud gaming system is configured to detect thetype of client device associated with the user, and also a type ofcontroller available for the user to provide input to the cloud-basedvideo game. For example, in one embodiment, when a user logs in to thecloud gaming system, they may be presented with an option to designatethe type of client device with which they are accessing the cloud gamingsystem. In one embodiment, a series of client device options arepresented from which the user may select one corresponding to theirclient device. The user may also be presented with an option todesignate the type of controller device they will use to play a videogame. In one embodiment, a series of controller options can be presentedto the user, from which the user may select to designate a controllertype corresponding to their controller hardware. In other embodiments,the cloud gaming system can be configured to automatically detect theclient device type and/or the controller device type.

For example, at the time of login, the client device may sendinformation to the cloud gaming server identifying itself as well as aconnected controller device (e.g. in response to a request from thecloud gaming server). Based on this information, the cloud gaming servermay determine an appropriate video game output configuration and inputparameter configuration to provide a gaming experience optimized for theuser's client device and controller device. In one embodiment, a look-uptable is employed to determine video game configuration and inputparameter configuration based on a detected client device and a detectedcontroller device.

It should be appreciated that a given video game may be developed for aspecific platform and a specific associated controller device. However,when such a game is made available via a cloud gaming system aspresented herein, the user may be accessing the video game with adifferent controller device. For example, a game might have beendeveloped for a game console and its associated controller, whereas theuser might be accessing a cloud-based version of the game from apersonal computer utilizing a keyboard and mouse. In such a scenario,the input parameter configuration can define a mapping from inputs whichcan be generated by the user's available controller device (in thiscase, a keyboard and mouse) to inputs which are acceptable for theexecution of the video game.

In another example, a user may access the cloud gaming system via atablet computing device, a touchscreen smartphone, or other touchscreendriven device. In this case, the client device and the controller deviceare integrated together in the same device, with inputs being providedby way of detected touchscreen inputs/gestures. For such a device, theinput parameter configuration may define particular touchscreen inputscorresponding to game inputs for the video game. For example, buttons, adirectional pad, or other types of input elements might be displayed oroverlayed during running of the video game to indicate locations on thetouchscreen that the user can touch to generate a game input. Gesturessuch as swipes in particular directions or specific touch motions mayalso be detected as game inputs. In one embodiment, a tutorial can beprovided to the user indicating how to provide input via the touchscreenfor gameplay, e.g. prior to beginning gameplay of the video game, so asto acclimate the user to the operation of the controls on thetouchscreen.

In some embodiments, the client device serves as the connection pointfor a controller device. That is, the controller device communicates viaa wireless or wired connection with the client device to transmit inputsfrom the controller device to the client device. The client device mayin turn process these inputs and then transmit input data to the cloudgaming server via a network (e.g. accessed via a local networking devicesuch as a router). However, in other embodiments, the controller canitself be a networked device, with the ability to communicate inputsdirectly via the network to the cloud gaming server, without beingrequired to communicate such inputs through the client device first. Forexample, the controller might connect to a local networking device (suchas the aforementioned router) to send to and receive data from the cloudgaming server. Thus, while the client device may still be required toreceive video output from the cloud-based video game and render it on alocal display, input latency can be reduced by allowing the controllerto send inputs directly over the network to the cloud gaming server,bypassing the client device.

In one embodiment, a networked controller and client device can beconfigured to send certain types of inputs directly from the controllerto the cloud gaming server, and other types of inputs via the clientdevice. For example, inputs whose detection does not depend on anyadditional hardware or processing apart from the controller itself canbe sent directly from the controller to the cloud gaming server via thenetwork, bypassing the client device. Such inputs may include buttoninputs, joystick inputs, embedded motion detection inputs (e.g.accelerometer, magnetometer, gyroscope), etc. However, inputs thatutilize additional hardware or require processing by the client devicecan be sent by the client device to the cloud gaming server. These mightinclude captured video or audio from the game environment that may beprocessed by the client device before sending to the cloud gamingserver. Additionally, inputs from motion detection hardware of thecontroller might be processed by the client device in conjunction withcaptured video to detect the position and motion of the controller,which would subsequently be communicated by the client device to thecloud gaming server. It should be appreciated that the controller devicein accordance with various embodiments may also receive data (e.g.feedback data) from the client device or directly from the cloud gamingserver.

Embodiments of the present invention may be practiced with variouscomputer system configurations including hand-held devices,microprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers and the like. Theinvention can also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a wire-based or wireless network.

With the above embodiments in mind, it should be understood that theinvention can employ various computer-implemented operations involvingdata stored in computer systems. These operations are those requiringphysical manipulation of physical quantities. Any of the operationsdescribed herein that form part of the invention are useful machineoperations. The invention also relates to a device or an apparatus forperforming these operations. The apparatus can be specially constructedfor the required purpose, or the apparatus can be a general-purposecomputer selectively activated or configured by a computer programstored in the computer. In particular, various general-purpose machinescan be used with computer programs written in accordance with theteachings herein, or it may be more convenient to construct a morespecialized apparatus to perform the required operations.

The invention can also be embodied as computer readable code on acomputer readable medium. The computer readable medium is any datastorage device that can store data, which can be thereafter be read by acomputer system. Examples of the computer readable medium include harddrives, network attached storage (NAS), read-only memory, random-accessmemory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes and other optical andnon-optical data storage devices. The computer readable medium caninclude computer readable tangible medium distributed over anetwork-coupled computer system so that the computer readable code isstored and executed in a distributed fashion.

Although the method operations were described in a specific order, itshould be understood that other housekeeping operations may be performedin between operations, or operations may be adjusted so that they occurat slightly different times, or may be distributed in a system whichallows the occurrence of the processing operations at various intervalsassociated with the processing, as long as the processing of the overlayoperations are performed in the desired way.

Although the foregoing invention has been described in some detail forpurposes of clarity of understanding, it will be apparent that certainchanges and modifications can be practiced within the scope of theappended claims. Accordingly, the present embodiments are to beconsidered as illustrative and not restrictive, and the invention is notto be limited to the details given herein, but may be modified withinthe scope and equivalents of the appended claims.

What is claimed is:
 1. A method, comprising: receiving a plurality oftag data for a video game recording of game play from a plurality ofviewers, the game play by a user playing a video game; identifying aviewable portion of the video game recording having a concentration ofthe plurality of tag data; and providing to a viewer a playable portionof the video game recording corresponding to the viewable portion. 2.The method of claim 1, further comprising: accessing game code for thevideo game corresponding to the viewable portion of the video gamerecording for executing the playable portion.
 3. The method of claim 1,further comprising: identifying one or more viewable portions of thevideo game recording having tag data; and determining quantities of tagdata associated with each of the viewable portions that is identified.4. The method of claim 1, wherein the receiving a plurality of tag dataincludes: receiving one or more items of tag data from the user playingthe video game.
 5. The method of claim 1, wherein the receiving aplurality of tag data includes: receiving one or more items of tag datafrom one or more of the plurality of viewers viewing the video gamerecording.
 6. The method of claim 1, further comprising: posting theplayable portion of the video game recording to a web page of a socialgroup for viewing and playing by users of the social group, wherein thesocial group is one of a game sharing website, a social network, or agame sharing website having social networking information regardingsharing, posting, or comments regarding the portion of the gamingapplication.
 7. The method of claim 6, further comprising: posting theplayable portion of the video game recording as a uniform resourcelocator (URL).
 8. A method, comprising: providing a game slice definedfrom a recorded game play of a video game by a first user, the gameslice including a viewable portion of the recorded game play and aplayable portion of the recorded game play; receiving a plurality of tagdata for the viewable portion of the recorded game play; identifying asub-portion of the viewable portion of the recorded game play having aconcentration of the plurality of tag data; and providing to a viewer ofthe viewable portion of the recorded game play a playable sub-portion ofthe game slice corresponding to the sub-portion of the viewable portionof the recorded game play.
 9. The method of claim 8, further comprising:accessing game code for the video game corresponding to the sub-portionof the viewable portion of the recorded game play for executing theplayable sub-portion of the game slice.
 10. The method of claim 8,further comprising: identifying one or more sub-portions of the viewableportion of the recorded game play; and determining quantities of tagdata associated with each of the sub-portions that is identified. 11.The method of claim 8, wherein the receiving a plurality of tag dataincludes: receiving one or more items of tag data from a second userplaying the playable portion of the recorded game play.
 12. The methodof claim 8, wherein the receiving a plurality of tag data includes:receiving one or more items of tag data from a plurality of viewersviewing the viewable portion of the recorded game play.
 13. The methodof claim 8, further comprising: posting the playable sub-portion of thegame slice to a web page of a social group for viewing and playing byusers of the social group, wherein the social group is one of a gamesharing website, a social network, or a game sharing website havingsocial networking information regarding sharing, posting, or commentsregarding the portion of the gaming application.
 14. The method of claim13, further comprising: posting the playable sub-portion of the gameslice as a uniform resource locator (URL).
 15. The method of claim 8,further comprising: identifying a video frame of the viewable portion ofthe recorded game play having a highest number of tag data; andselecting the identified video frame as a representative frame for theplayable sub-portion of the game slice.
 16. A non-transitory computerreadable medium having program instructions for a method, the computerreadable medium comprising: program instructions for receiving aplurality of tag data for a video game recording of game play from aplurality of viewers, the game play by a user playing a video game;program instructions for identifying a viewable portion of the videogame recording having a concentration of the plurality of tag data; andprogram instructions for providing to a viewer a playable portion of thevideo game recording corresponding to the viewable portion.
 17. Thenon-transitory computer readable medium of claim 16, further comprising:program instructions for accessing game code for the video gamecorresponding to the viewable portion of the video game recording forexecuting the playable portion.
 18. The non-transitory computer readablemedium of claim 16, wherein the program instructions for receiving aplurality of tag data includes: program instructions for receiving oneor more items of tag data from the user playing the video game; andprogram instructions for receiving one or more items of tag data fromone or more of the plurality of viewers viewing the video gamerecording.
 19. The non-transitory computer readable medium of claim 16,further comprising: program instructions for posting the playableportion of the video game recording to a web page of a social group forviewing and playing by users of the social group, wherein the socialgroup is one of a game sharing website, a social network, or a gamesharing website having social networking information regarding sharing,posting, or comments regarding the portion of the gaming application.20. The non-transitory computer readable medium of claim 19, furthercomprising: program instructions for posting the playable portion of thevideo game recording as a uniform resource locator (URL).